The present invention relates to data management and data distribution systems. More specifically, the present invention provides a system for receiving, managing and distributing data to multiple destinations.
Various types of systems require data management and data distribution mechanisms for controlling the flow of data to multiple destinations. For example, a system requiring data distribution may include a server and multiple clients coupled to the server. The server may generate data or receive data for distribution from multiple sources. This information is then distributed to one or more clients coupled to the server. However, the server may distribute different sets or types of data to particular clients or group of clients. For example, a particular group of clients receives data related to financial matters, while another group of clients receives data related to marketing concerns.
In a client-server relationship of the type discussed above, the server must be capable of determining how to distribute data to multiple clients; i.e., which clients should receive a particular set of data or a particular data element. In systems with a large number of clients or a large amount of data to be distributed, the task of determining how to distribute the data may require a significant amount of the server""s computational resources. For example, in a system having one thousand or more clients, the server maintains distribution information for each client, and distributes received data to the clients based on the distribution information. In certain known systems, a separate data packet is sent to each client identified in the distribution information as a recipient of the information. This results in a large number of data packets being transmitted across a network or other communication medium coupling the various clients to the server. This type of distribution system may be referred to as a point-to-point distribution system.
Additionally, different clients or groups of clients may receive different portions of the data (also referred to as data elements). Thus, the different data packets sent to different clients may contain a large number of common data elements. In some cases, these data packets may contain data elements that are identical to the data elements contained in other packets. This repeated transmission of identical data elements increases network traffic, and thereby increases bandwidth requirements and/or increases the time required to distribute the data.
It is therefore desirable to provide a data distribution system that reduces the repetitive transmission of identical data elements across a network or other communication system.
Embodiments of the present invention provide a system for managing and distributing data to multiple destinations. Data is received from multiple sources (or contributors) and placed into data packets. Data packets are then distributed across a network or other communication medium to multiple data destinations. The data destinations that desire the type of data within a particular data packet will retrieve the data packet from the network. Other data destinations that are not interested in the type of data within the data packet will not retrieve the data packet. Thus, instead of transmitting a separate data packet to each data destination, embodiments of the present invention transmit a single data packet that is received by multiple data destinations, thereby reducing the number of data packets transmitted.
An embodiment of the invention receives data from at least one data source. The received data is then normalized into a standard configuration. An identifier is associated with the normalized data. The normalized data and the associated identifier is then transmitted to multiple data destinations.
In particular embodiments of the invention, each data destination determines whether to retrieve the normalized data based on the identifier associated with the normalized data.
In one embodiment, the identifier associated with the normalized data indicates the type of data included in the normalized data.
In another embodiment, the normalized data is transmitted in a data packet that includes the identifier associated with the normalized data.
Other embodiments of the invention provide a data receiver coupled to receive data from at least one data source. A data normalizer is coupled to the data receiver and normalizes data received by the data receiver into a standard configuration. The data normalizer also associates an identifier with the normalized data. A data hub server coupled to the data normalizer transmits the normalized data and the associated identifier to the multiple of data destinations.